from numpy import array
from sklearn import neighbors

from demo1 import create_dataset_skl


def knn_sklearn_predict(newV, datasets, labels):
    # 利用机器学习库knn分类器算法
    knn = neighbors.KNeighborsClassifier()
    # 调用模块下的方法，返回数据特征集和类标签
    # datasets, labels = create_dataset_skl()
    # 传入参数，特征数据，分类标签
    knn.fit(datasets, labels)
    # knn预测
    predictRes = knn.predict([newV])
    return predictRes


# 利用KNN分类器预测随机访客天气感知度
def predictTemperature():
    # 1 创建数据集和类标签
    datasets, labels = create_dataset_skl()
    # 2 采访新游客
    iceCream = float(input('Q:请问你今天吃了几个冰激凌？\n'))
    drinkWater = float(input('Q:请问你今天喝了几瓶（杯）水？\n'))
    playAct = float(input('Q:请问你今天户外活动几个小时？\n'))
    newV = array([iceCream, drinkWater, playAct])
    res = knn_sklearn_predict(newV, datasets, labels)
    return res


if __name__ == '__main__':
    res = predictTemperature()
    print('该访客任务成都天气是：', '非常热' if res[0] == 0 else '一般热')
